GroundwaterOutputInit Subroutine

public subroutine GroundwaterOutputInit(path_out)

Initialize files for exporting output results

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: path_out

path of output folder


Variables

Type Visibility Attributes Name Initial
real(kind=float), public :: area

(km2)

integer(kind=short), public :: i
integer(kind=short), public :: j
integer(kind=short), public :: nvars

Source Code

SUBROUTINE GroundwaterOutputInit &
!
( path_out )

IMPLICIT NONE

!Arguments with intent (in):
CHARACTER (LEN = *), INTENT(IN) :: path_out  !!path of output folder

!local declarations
REAL (KIND = float) :: area !! (km2)
INTEGER (KIND = short) :: i, j
INTEGER (KIND = short) :: nvars



!----------------------------------end of declarations-------------------------

!compute groundwater extent area
area = 0.
DO i = 1, basin % aquifer (1) % domainBC % idim
    DO j = 1, basin % aquifer (1) % domainBC % jdim
        IF (basin % aquifer (1) % domainBC % mat (i,j) == ACTIVE_CELL ) THEN
            area =  area + CellArea ( basin % aquifer (1) % domainBC, i, j )
        END IF
    END DO
END DO
area = area / 1000000. !conversion m2 -> km2

!number of variables to write in output file
nvars = basin % nAquifers + 5

IF ( riverGroundwaterInteract ) THEN
    nvars = nvars + 2
END IF


!open and initialize file
fileUnitOutGW = GetUnit ()
OPEN ( unit = fileUnitOutGW, file = TRIM(path_out) // 'aquifer.out' )
WRITE (fileUnitOutGW,'(a)') 'Output variables of groundwater simulation'
WRITE (fileUnitOutGW,fmt = '(a, F12.2)') 'extent area (km2): ', area
WRITE (fileUnitOutGW,fmt = '(a, I3)') 'number of variables: ', nvars
WRITE (fileUnitOutGW,*)
WRITE (fileUnitOutGW,*)
WRITE (fileUnitOutGW,'(a)') 'data'
WRITE (fileUnitOutGW,'(a)', advance='no') 'DateTime     '

DO i = 1, basin % nAquifers
    WRITE (fileUnitOutGW,'(a)', advance='no') 'head_aquifer_' // &
                                          TRIM(ToString(i)) // '_m'
END DO

IF ( riverGroundwaterInteract ) THEN

    WRITE (fileUnitOutGW,'(a)') '   recharge_m3   volume_neumann_m3   &
           volume_dirichlet_m3    volume_change_m3    residual_m3  & 
           river_to_groundwater_m3    groundwater_to_river_m3 '

ELSE
    WRITE (fileUnitOutGW,'(a)') '   recharge_m3   volume_neumann_m3   &
           volume_dirichlet_m3    volume_change_m3    residual_m3 '
END IF
RETURN
END SUBROUTINE GroundwaterOutputInit